﻿#ifndef _SPRITE_H_
#define _SPRITE_H_

#include <d3d9.h>
#include <d3dx9.h>
#include "Texture.h"

class CSprite
{
public:
	CTexture* SpriteTexture;
	int Start;
	int End;
	int Index;
	int TimeAni;
	int TimeLocal;

	CSprite();
	CSprite(const CSprite &sprite);
	CSprite(CTexture* texture, int timeAni);
	CSprite(CTexture* texture, int start, int end, int timeAni);

	//Chuyển hình
	void Next();

	//Trở về hình đầu tiên
	void Reset();

	//Chọn 1 frame hình bất kỳ
	void SelectFrameOf(int index);

	//Chạy hiệu ứng hoạt hình 
	void UpdateEffect(int elapsedTime);

	//Vẽ hình hiện tại ở vị trí x, y
	void Draw(int x, int y);

	//Vẽ hình xoay ngược chiều ngang
	void DrawFlipX(int x, int y);

	//Vẽ hình xoày ngược chiều dọc
	void DrawFlipY(int x, int y);

	//Vẽ hình chữ nhật bao quanh texture
	void DrawRect(int x, int y, RECT srcRect);

	//Vẽ hình với thông số chi tiết
	void DrawTransform(int x, int y, D3DXVECTOR2 scale, float degRotate, float depth);

	~CSprite();
};
#endif
